home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
- #
- # This is just a sample implementation of a slightly less primitive
- # interface than xinit. It looks for user .xinitrc and .xserverrc
- # files, then system xinitrc and xserverrc files, else lets xinit choose
- # its default. The system xinitrc should probably do things like check
- # for .Xresources files and merge them in, startup up a window manager,
- # and pop a clock and serveral xterms.
- #
- # Site administrators are STRONGLY urged to write nicer versions.
- #
- # $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $
-
-
- userclientrc=$HOME/.xinitrc
- userserverrc=$HOME/.xserverrc
- sysclientrc=/etc/X11/xinit/xinitrc
- sysserverrc=/etc/X11/xinit/xserverrc
- defaultclientargs=""
- defaultserverargs="-nolisten tcp -br"
- clientargs=""
- serverargs=""
-
-
-
-
-
-
- if [ -f $userclientrc ]; then
- defaultclientargs=$userclientrc
- elif [ -f $sysclientrc ]; then
- defaultclientargs=$sysclientrc
- fi
-
-
-
-
- if [ -f $userserverrc ]; then
- defaultserverargs=$userserverrc
- elif [ -f $sysserverrc ]; then
- defaultserverargs=$sysserverrc
- fi
-
- whoseargs="client"
- while [ x"$1" != x ]; do
- case "$1" in
- /''*|\.*) if [ "$whoseargs" = "client" ]; then
- if [ "x$clientargs" = x ]; then
- clientargs="$1"
- else
- clientargs="$clientargs $1"
- fi
- else
- if [ "x$serverargs" = x ]; then
- serverargs="$1"
- else
- serverargs="$serverargs $1"
- fi
- fi ;;
- --) whoseargs="server" ;;
- *) if [ "$whoseargs" = "client" ]; then
- if [ "x$clientargs" = x ]; then
- clientargs="$defaultclientargs $1"
- else
- clientargs="$clientargs $1"
- fi
- else
- case "$1" in
- :[0-9]*) display="$1"; serverargs="$serverargs $1";;
- *) serverargs="$serverargs $1" ;;
- esac
- fi ;;
- esac
- shift
- done
-
- if [ x"$clientargs" = x ]; then
- clientargs="$defaultclientargs"
- fi
- if [ x"$serverargs" = x ]; then
- serverargs="$defaultserverargs"
- fi
-
- if [ x"$XAUTHORITY" = x ]; then
- XAUTHORITY=$HOME/.Xauthority
- export XAUTHORITY
- fi
-
- removelist=
-
-
- # set up default Xauth info for this machine
- case `uname` in
- Linux*)
- if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
- hostname=`hostname -f`
- else
- hostname=`hostname`
- fi
- ;;
- *)
- hostname=`hostname`
- ;;
- esac
-
- authdisplay=${display:-:0}
- mcookie=`mcookie`
- for displayname in $authdisplay $hostname$authdisplay; do
- if ! xauth list "$displayname" | grep "$displayname " >/dev/null 2>&1; then
- xauth -q << EOF
- add $displayname . $mcookie
- EOF
- removelist="$displayname $removelist"
- fi
- done
-
-
- cleanup() {
- [ -n "$PID" ] && kill $PID > /dev/null 2>&1
-
-
- if [ x"$removelist" != x ]; then
- xauth remove $removelist
- fi
-
-
-
-
-
- if command -v deallocvt > /dev/null 2>&1; then
- deallocvt
- fi
-
-
-
-
-
-
-
-
-
-
- }
-
-
- trap cleanup 0
-
- xinit $clientargs -- $serverargs -deferglyphs 16 &
-
- PID=$!
-
- wait $PID
-
- unset PID
-